import type { PageParam, PageResult } from '@vben/request';
import type { Dayjs } from 'dayjs';

import { requestClient } from '#/api/request';

export namespace DiningTableTypeApi {
  /** 餐桌类型表（支持多餐厅）信息 */
  export interface DiningTableType {
    id: number; // 主键ID
    groupId?: number; // 集团ID
    storeId?: number; // 门店ID
    restaurantId?: number; // 餐厅ID
    typeCode?: string; // 类型编码
    typeName?: string; // 类型名称
    typeDescription: string; // 类型描述
    defaultCapacity?: number; // 默认容纳人数
    minCapacity?: number; // 最小容纳人数
    maxCapacity?: number; // 最大容纳人数
    tableShape: string; // 餐桌形状
    scope: string; // 权限范围
    scoperef: string; // 权限引用
  }
}

/** 查询餐桌类型表（支持多餐厅）分页 */
export function getDiningTableTypePage(params: PageParam) {
  return requestClient.get<PageResult<DiningTableTypeApi.DiningTableType>>(
    '/spa/dining-table-type/page',
    { params },
  );
}

/** 查询餐桌类型表（支持多餐厅）详情 */
export function getDiningTableType(id: number) {
  return requestClient.get<DiningTableTypeApi.DiningTableType>(
    `/spa/dining-table-type/get?id=${id}`,
  );
}

/** 新增餐桌类型表（支持多餐厅） */
export function createDiningTableType(
  data: DiningTableTypeApi.DiningTableType,
) {
  return requestClient.post('/spa/dining-table-type/create', data);
}

/** 修改餐桌类型表（支持多餐厅） */
export function updateDiningTableType(
  data: DiningTableTypeApi.DiningTableType,
) {
  return requestClient.put('/spa/dining-table-type/update', data);
}

/** 删除餐桌类型表（支持多餐厅） */
export function deleteDiningTableType(id: number) {
  return requestClient.delete(`/spa/dining-table-type/delete?id=${id}`);
}

/** 导出餐桌类型表（支持多餐厅） */
export function exportDiningTableType(params: any) {
  return requestClient.download('/spa/dining-table-type/export-excel', {
    params,
  });
}
